﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;
using Elysium.Demo.Ventas;
using SIIE_ERP.BaseDatos;
using SIIE_ERP.BaseDatos.Configuracion;
using System.IO;
using System.Data;

namespace Elysium.Demo.Configuracion
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class TiempoAire_Final : UserControl
    {
        private UsuarioActivo _sesion;

        public TiempoAire_Final(ref UsuarioActivo usuario)
        {
            InitializeComponent();
            this._sesion = usuario;
            
            SaldoTelcel.Text =  WebServicesClass.GetSaldo_Telcel(_sesion.RFC).ToString("C");
            SaldoNoTelcel.Text = WebServicesClass.GetSaldo_Otros(_sesion.RFC).ToString("C");

            dbo_Trans_TiempoAire_RFC dbo_TA = new dbo_Trans_TiempoAire_RFC(_sesion.RFC, _sesion.UserName);

            SiteNoTelcel.Text = "Site Id: " + dbo_TA.Get_TiempoAire_RFC().Rows[0]["NoTelcel_SiteId"].ToString();
            SiteTelcel.Text = "Site Id: " + dbo_TA.Get_TiempoAire_RFC().Rows[0]["Telcel_SiteId"].ToString();
        }

        private void ButtonInformacion_Click_1(object sender, RoutedEventArgs e)
        {
            WindowAyuda Ayuda = new Elysium.Demo.WindowAyuda("TiempoAire.htm", "Ayuda");
            Ayuda.Owner = SIIE_ERP.View.NavegacionUI.GetParentWindow(this); Ayuda.ShowDialog();
        }

        private void Button_DocTelcel_Click_1(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
            fbd.Description = "Elija la carpeta donde desea guardar la plantilla";
            System.Windows.Forms.DialogResult result = fbd.ShowDialog();

            string fName = "PAGOS_EMIDA_TELCEL.pdf";

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    File.Copy(System.IO.Path.Combine(Directory.GetCurrentDirectory() + "\\_ArchivosParaBin\\", fName), System.IO.Path.Combine(fbd.SelectedPath + "\\", fName), true);
                    MessageBox.Show("Documento descargado correctamente");
                }
                catch (Exception)
                {
                    MessageBox.Show("La ruta elegida no está disponible.");
                    return;
                }
            }
            else
            {
                MessageBox.Show("Se canceló la Selección.");
            }
        }

        private void Button_DocNoTelcel_Click_1(object sender, RoutedEventArgs e)
        {
            System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
            fbd.Description = "Elija la carpeta donde desea guardar la plantilla";
            System.Windows.Forms.DialogResult result = fbd.ShowDialog();

            string fName = "PAGOS_EMIDA_OTROS.pdf";

            if (result == System.Windows.Forms.DialogResult.OK)
            {
                try
                {
                    File.Copy(System.IO.Path.Combine(Directory.GetCurrentDirectory() + "\\_ArchivosParaBin\\", fName), System.IO.Path.Combine(fbd.SelectedPath + "\\", fName), true);
                    MessageBox.Show("Documento descargado correctamente");
                }
                catch (Exception)
                {
                    MessageBox.Show("La ruta elegida no está disponible.");
                    return;
                }
            }
            else
            {
                MessageBox.Show("Se canceló la Selección.");
            }
        }

        private void LimpiarPantalla()
        {
            TextBox_Importe.Text = "";
            ComboBox_Banco.SelectedIndex = 0;
            TextBox_NumDocumento.Text = "";
            
            ComboBox_Dia.SelectedIndex = 0;
            ComboBox_Mes.SelectedIndex = 0;
            ComboBox_Anio.SelectedIndex = 0;

            RadioButton_Telcel.IsChecked = true;
        }

        private void Button_GuardarPagos_Click_1(object sender, RoutedEventArgs e)
        {            
            if(String.IsNullOrEmpty(TextBox_Importe.Text))
            {
                MessageBox.Show("Favor de ingresar un Importe");                
                return;
            }
            
            if(String.IsNullOrEmpty(TextBox_NumDocumento.Text))
            {
                MessageBox.Show("Favor de ingresar un Número de Documento");                
                return;
            }
            
            try
            {
                int Aux = 0;
                Aux = Int32.Parse(TextBox_Importe.Text);                    
            }
            catch(Exception Ex)
            {
                MessageBox.Show("Favor de ingresar un Importe válido");                
                return;
            }
            
            if((ComboBox_Mes.SelectedValue.ToString().Equals("04") || ComboBox_Mes.SelectedValue.ToString().Equals("06") || ComboBox_Mes.SelectedValue.ToString().Equals("09") || ComboBox_Mes.SelectedValue.ToString().Equals("11")) && ComboBox_Dia.SelectedValue.ToString().Equals("31"))
            {
                MessageBox.Show("Favor de ingresar una fecha válida");                
                return;
            }
        
            if((ComboBox_Mes.SelectedValue.ToString().Equals("02") && ComboBox_Dia.SelectedValue.ToString().Equals("31")) || (ComboBox_Mes.SelectedValue.ToString().Equals("02") && ComboBox_Dia.SelectedValue.ToString().Equals("30")))
            {
                MessageBox.Show("Favor de ingresar una fecha válida");                
                return;
            }

            if ((!(ComboBox_Anio.SelectedValue.ToString().Equals("2016") || ComboBox_Anio.SelectedValue.ToString().Equals("2020"))) && ComboBox_Mes.SelectedValue.ToString().Equals("02") && ComboBox_Dia.SelectedValue.ToString().Equals("29"))
            {
                MessageBox.Show("Favor de ingresar una fecha válida");                
                return;
            }
            
            if(WebServicesClass.RegistrarPagoEMIDA(
                _sesion.RFC, 
                (bool)RadioButton_Telcel.IsChecked,
                Int32.Parse(TextBox_Importe.Text),
                TextBox_NumDocumento.Text,
                ((ComboBoxItem)ComboBox_Mes.SelectedItem).Tag.ToString() + "/" + ((ComboBoxItem)ComboBox_Dia.SelectedItem).Tag.ToString() + "/" + ((ComboBoxItem)ComboBox_Anio.SelectedItem).Tag.ToString(),
                ((ComboBoxItem)ComboBox_Banco.SelectedItem).Tag.ToString()
            ))
            {
                MessageBox.Show("Su pago se ha registrado correctamente, favor de esperar 48 horas hábiles para ver su saldo actualizado en el sistema");
                LimpiarPantalla();
            }
            else
            {
                MessageBox.Show("Su pago no se ha podido registrar correctamente, favor de verificar los datos que ha ingresado.");
            }
        }
    }
}
